home *** CD-ROM | disk | FTP | other *** search
/ Draw Works New Millennium - Vector & Bitmap / DrawWorks New Millennium - Vector and Bitmap for RISC OS Workstations.iso / fonttools / fontedsa / notes / _help next >
Text File  |  1997-09-01  |  27KB  |  529 lines

  1. > !FontEd.!Help version 0.29
  2.  
  3. The Font Editor
  4. --------------
  5.  
  6. The Font Editor can be invoked by double-clicking either on the Editor
  7. application itself or on a Font outline, bitmap or metrics file.
  8.  
  9. Outline files contain the device-independent form of a font, as a series of
  10. straight lines and bezier curves, which when filled at an appropriate scale
  11. factor using the Draw module will draw the required characters.  This
  12. technique is used by the new Font Manager, which caches the resulting
  13. bitmaps in order to speed up the process of painting the fonts.
  14.  
  15. Bitmap files contain a single size of a font, produced on request by the
  16. editor from a master outline font file.  The bitmaps are computed by drawing
  17. the outline font at the appropriate size into a set of bitmaps, which can
  18. then be manually 'tweaked' using the editor if desired before being
  19. compacted using a form of run-length encoding.
  20.  
  21. Note that if no manual tweaking is performed, the only advantage of
  22. producing bitmap files is to speed up the process of font cacheing, since
  23. the Font Manager can itself perform the conversion from outline to bitmap
  24. fonts 'on the fly', as it reads in the font.
  25.  
  26. In order to improve the appearance of the bitmap fonts, a set of 'scaffold
  27. lines' can be defined along with the character outlines, to which line
  28. endpoints can be linked.  The purpose of these scaffold lines is to allow
  29. 'grid constraints' to be enforced when an outline character is converted to
  30. a bitmap form, using a technique based on an article in Siggraph '88 called
  31. 'Character Generation Under Grid Constraints' by Roger D. Hersch of the
  32. Swiss Federal Institute of Technology in Lausanne.
  33.  
  34. The basic idea is to shift the positions of various parts of the character
  35. so that they line up in a consistent way with the pixel grid, so that
  36. horizontal and vertical lines of the same width will be drawn the same
  37. width, rather than having a variation of one pixel due to grid alignment
  38. problems.  By creating a scaffold line which lines up with the horizontal or
  39. vertical section and linking the relevant points to the line, that section
  40. of the character will be adjusted when being converted to a bitmap so that
  41. the ideal number of pixel centres fall within the line.
  42.  
  43. Apart from the 'normal' scaffold lines described above, there are two other
  44. kinds of scaffold lines known as L- and R-tangent lines, which are used to
  45. ensure that arcs positioned so as to avoid the drawing of 'pips' or long
  46. runs of horizontal or vertical pixels at the edges.  An L-tangent line
  47. should be linked to an arc which bulges out to the left, while an R-tangent
  48. line should be used for arcs bulging out to the right.  For arcs in the
  49. Y-plane, U- and D-tangent lines deal with arcs that bulge up or down
  50. respectively.
  51.  
  52. The scaffolding mechanism is described in greater detail in a paper which is
  53. available separately from Acorn - since it requires various diagrams, it
  54. cannot adequately be reproduced here.  If you are not familiar with Roger
  55. Hersch's article, I would recommend that you read this paper before
  56. continuing.
  57.  
  58. The rest of this document deals with the various user interfaces to the
  59. editor - note that the Font Editor now supports interactive help, which is
  60. often easier to understand than a document.
  61.  
  62. To use interactive help, double click on the !Help application and then
  63. watch the help text as you move the mouse over the font editor's windows.
  64.  
  65.  
  66. The Iconbar icon
  67. ----------------
  68.  
  69. Click SELECT on the IconBar icon to create a new (blank) font index window.
  70.  
  71. Click MENU to obtain the menu, which has an info box and a 'Quit' option.
  72.  
  73. Alternatively double-click on a font file or drag it onto the iconbar icon
  74. to edit it.
  75.  
  76. When a font file (outlines or bitmaps) is loaded, a file called "IntMetrics"
  77. is searched for in the same directory as the font file - if found, it is
  78. loaded as the metrics file for the font.
  79.  
  80. When a font file is loaded, it is automatically checked for conformance with
  81. the font file format, and if it does not correspond, a suitable error
  82. message is generated and the file is not loaded.  If required, the checking
  83. step can be omitted by holding down the control key as the file is loaded. 
  84. This checking facility makes the font editor useful for verifying that fonts
  85. generated by other means are valid.
  86.  
  87.  
  88. The Font Index window
  89. ---------------------
  90.  
  91. When a font is loaded, a 'Font Index' window appears, which contains the
  92. name of the font, and whether it is an outline or bitmap font.  For bitmap
  93. fonts, the point size and device resolution is displayed.
  94.  
  95. Characters which are defined will be displayed in black, while those with no
  96. definition are displayed in grey.  The index will then start to fill up with
  97. the actual shapes of the characters - this process is done in the
  98. 'background', so that you can immediately start editing any of the
  99. characters if you wish, without having to wait for it to be displayed.
  100.  
  101. For outline fonts:
  102.  
  103.   Double-clicking SELECT on a character will display its 'Skeleton' window,
  104.   containing the outline of the character and its scaffold lines.
  105.  
  106.   Double-clicking ADJUST on a character will display its 'full' window,
  107.   which shows what the character would look like at a particular size.  This
  108.   size depends on the height of the window, so by dragging the size box you
  109.   can see immediately what the character will look like at a given size.
  110.  
  111.   Dragging a character with SELECT onto another character box will copy the
  112.   first character's definition into the other's, overwriting it.  If you
  113.   drag a character from the font index window onto Draw or a directory
  114.   window, the character outline is converted to a DrawFile object.
  115.  
  116.   Dragging a character with ADJUST onto another character box, or onto its
  117.   skeleton window, will cause the destination character to use the source
  118.   character as the 'base' character for its scaffold lines.  Each scaffold
  119.   line in a character has a unique index in the range 1..7, and any scaffold
  120.   lines in the source character which have no equivalent line in the
  121.   destination character will be inherited by it.  Note that such lines are
  122.   actually equivalent, rather than being copies - if either line is moved,
  123.   the other will be affected.  Note that the destination character can
  124.   subsequently acquire new lines in addition to or instead of lines in the
  125.   source, but that new lines added in the source character will not appear
  126.   in the destination unless the 'add global line' facility is used, or the
  127.   source character is again dragged onto the destination.
  128.  
  129.   Dragging a character with SELECT into any Skeleton window will cause the
  130.   character's outline to be displayed in grey as a 'template' in the window -
  131.   this allows different characters to be compared.
  132.  
  133.   Dragging a character with SHIFT-select into another character box or
  134.   skeleton window will import that character as a composite character
  135.   segment.  This segment is a direct link to the original character, and
  136.   so the use of composite sections can dramatically reduce the memory
  137.   requirements of a font.  For example, to create a Udieresis (U umlaut):
  138.  
  139.         double-click on the Udieresis box to create a null character
  140.         shift-drag the U onto the Udieresis box
  141.         shift-drag the dieresis onto the Udieresis box
  142.  
  143.   It is also possible (and often necessary) to adjust the position of a
  144.   composite section after it has been imported.  See the section about the
  145.   Skeleton window for further details.  Note that any changes subsequently
  146.   made to the included character will affect the character in which it is
  147.   included, so you should be sure to get the character right before you
  148.   include it in another one.
  149.  
  150.   Note that when a character is imported into another in this way, only the
  151.   'local' section of the character is imported - any composite sections in
  152.   the first character are not imported.  This allows, for example, the
  153.   accented lower-case i's to be constructed without the need for a separate
  154.   dotless i, since the first accented i can be produced with a local dotless
  155.   section and an imported accent, and this character can then be included in
  156.   the others to produce further dotless i sections.
  157.  
  158.   Dragging a character with CTRL-select onto another character that already
  159.   contains that character as a composite section will cause the composite
  160.   section to be removed.
  161.  
  162. For bitmap fonts:
  163.  
  164.   Double-clicking SELECT on a character will open its 'Bitmap window',
  165.   showing an enlarged view of the characters definition, with the original
  166.   outline displayed on top if available (see below).
  167.  
  168. Outline font menu:
  169.  
  170.   Redisplay - causes the font to be rescanned, so that all characters will
  171.   be recomputed to suit the curent screen mode's resolution.  For example, if
  172.   you loaded a font while in mode 12, then changed to mode 20, the characters
  173.   in the font index would still be displayed at the old resolution.  By
  174.   selecting 'Redisplay', you could force the Font Editor to make the
  175.   characters look better.
  176.  
  177.   Show tree - displays a tree of the character definitions, showing which
  178.   characters inherit scaffold lines from which others.  The characters on
  179.   the left are the 'parents' of the characters connected to the right of
  180.   them.  When a scaffold line is selected in a skeleton window all
  181.   characters which contain that line are displayed in red, both in the tree
  182.   and any relevant font index windows (including bitmap fonts which depend
  183.   on that outline font).
  184.  
  185.   Alter - allows various aspects of the font file to be altered:
  186.  
  187.         Font name - note that in a finished font, the font name must
  188.         correspond with the directory (relative to Font$Prefix) in which it
  189.         resides.  Also note that the font name displayed in the window
  190.         reflects that in the Outlines file, not the IntMetrics file.  If the
  191.         metrics of the font are saved, the IntMetrics file will have this
  192.         font name written into it, and it is this file which must contain
  193.         the correct font name (to get the Font Manager to cache the font
  194.         correctly).
  195.  
  196.         Design size - this number reflects the number of "design units" that
  197.         correspond to 1 "em".  For example, if D is the design size of a
  198.         font, and this is then rendered at 12 point, then the outlines will
  199.         be scaled so that D design units equals 12 points.  Note that
  200.         coordinates are 12 bit sign-extended, so they must be in the range
  201.         -2048 to 2047, and must be integers.  A suitable value for the
  202.         design size is about 500.  If the design size of a font is made
  203.         smaller, the characters will be rendered larger for a given point
  204.         size, while if the design size is increased, the characters will be
  205.         rendered smaller for a given point size.
  206.  
  207.         Skeleton - this number is the threshold pixel size below which
  208.         skeleton lines will be drawn - above this they are ignored.  See
  209.         below for an explanation of what skeleton lines are.  The "pixel
  210.         size" of a font at a given size is the number of pixels per em, eg.
  211.         for a 12 point font rendered on a device with a resolution of 90
  212.         dots per inch the pixels per em is 12 * 90 / 72 (since there are 72
  213.         points per inch).
  214.  
  215.         Format - this controls the format of the font file.  You should
  216.         always use version 6, since version 7 cannot be understood by the
  217.         current font manager.
  218.  
  219.   Save - clicking on Save will save the font and its metrics (if any) under
  220.   its old name, or alternatively you can click on Save=>Outlines or
  221.   Save=>Metrics to save only that file, or you can edit either filename and
  222.   press RETURN or drag the file into a directory.
  223.  
  224.   Make bitmap - you can select the settings of point size and dots per inch
  225.   by typing into the writeable fields - SHIFT-cursor moves between fields, or
  226.   RETURN moves you to the next one and activates the operation if you are
  227.   already in the last field.  A new Font Index window will appear for the
  228.   bitmap font, which will start to fill up as the characters are computed from
  229.   the outlines.
  230.  
  231.   Debug - this is for debugging purposes and should not be used.
  232.  
  233. Bitmap font menu:
  234.  
  235.   Save - allows the font file to be saved.  Note that this option is greyed
  236.   out if the outline font has not yet been turned into bitmaps (this is done
  237.   in the background), since the file data depends on the bitmap information.
  238.  
  239.  
  240. The Skeleton window
  241. -------------------
  242.  
  243. The skeleton window shows a character's outline definition, including
  244. endpoints of lines and any scaffold lines.  It can also show the outline of
  245. one other character as a 'template', if you drag the relevant character from
  246. its font index window into the skeleton window (see above).
  247.  
  248. Note that when editing the contents of the skeleton window (either the
  249. character outline or any scaffold lines), any other windows which depend on
  250. the skeleton (eg. Full char windows or bitmaps) will be automatically
  251. updated as well.  In particular, this means that if a bitmap has been
  252. hand-tuned since it ws computed from its outline, altering the outline will
  253. cause the bitmap to be recomputed, overwriting the hand-tuning.
  254.  
  255. The character outline is converted to a bitmap by filling all closed
  256. subpaths using the Draw module (with even-odd window number rule, filling
  257. interior and interior boundary pixels), and thin-stroking all open subpaths
  258. (known as skeleton lines). In the 'Full char' window, the thin-stroking is
  259. drawn first in red, and the filling is done over the top in black, so that
  260. it is immediately apperent when the thin-stroking makes any difference to
  261. the appearance.  The idea is that for diagonal lines and thin curves, the
  262. thin-stroking acts as a kind of 'insurance' against the line disappearing
  263. altogether at small sizes - one should put an open subpath down the centre
  264. of the line.  The font has a threshold pixel size above which the open
  265. subpaths are ignored completely, since they are likely to have no effect at
  266. large sizes.  This threshold can be changed using the menu option
  267. Alter=>Skeleton.
  268.  
  269. While no scaffold lines are selected:
  270.  
  271.   Clicking SELECT or ADJUST on a line segment selects that line, deselecting
  272.   any other.  The line is displayed in light blue, with the control points
  273.   displayed in red.
  274.  
  275.   Clicking SELECT not on a line deselects any selected line.  If there are
  276.   more than one included composite section, this also selects the next one
  277.   in the list.  This means that you can use the cursor keys to move that
  278.   section around within the character.
  279.  
  280.   Dragging SELECT creates a new straight line segment: if the mouse was
  281.   originally over another point, the line segment is connected to it, and if
  282.   this was already a 2-node, the new line is linked in between the point and
  283.   the selected line (so you can choose which side of the point to insert the
  284.   line).
  285.  
  286.   Dragging ADJUST over a point moves that point.  For a Bezier curve, dragging
  287.   an endpoint moves both control points which are attached to that point by
  288.   the same amount, thus preserving the angle of the tangent, while dragging
  289.   either 'control point' of a straight line segment converts it to a Bezier
  290.   curve.
  291.  
  292.   When dragging a point using SELECT or ADJUST, when the point is released,
  293.   the Font Editor checks to see if the point is sufficiently close to an
  294.   endpoint - if it is, and the endpoint is a 1-node, then it connects the
  295.   dragged point precisely to the other one, and 'beeps' to show that it has
  296.   done it.  This has one important side-effect when drawing open subpaths
  297.   which are to act as thin-stroked 'skeletons' - for example, when doing the
  298.   skeleton for an 'O'.  The problem is that one wants the first point in the
  299.   path to coincide with the last, without actually being connected to it.  The
  300.   solution is to proceed normally, allowing the Font Editor to connect the
  301.   first and last points together.  You can then press and release SELECT on
  302.   the final point, holding it down long enough to register as a drag
  303.   operation.  This will cause a zero-length straight line to be inserted
  304.   between the first and last points in the skeleton - since it is also
  305.   selected, one can now select 'Delete' from the menu (see below) to remove
  306.   the line and achieve the desired open subpath.
  307.  
  308. Clicking on a scaffold line's control point selects that line:
  309.  
  310.   When a scaffold line is selected, all characters which contain that line
  311.   are displayed in red in the Font Index window.  This provides a quick check
  312.   as to which characters would be affected by moving the line.
  313.  
  314.   In the skeleton window, any points connected to that line are displayed in
  315.   red.  You can connect more points to the line by clicking on them using
  316.   SELECT, or by dragging a rectangle over a group of points and releasing
  317.   it.  Note that Bezier curve control points are always linked to the same
  318.   scaffold line as their nearest endpoint, and that any endpoint is linked to
  319.   one X-scaffold and one Y-scaffold line (line 0 is the null line, see
  320.   'Disconnect' below).
  321.  
  322.   You can also link any other scaffold line to the selected one by pressing
  323.   SHIFT-select on its control blob.  When rendering the character, this
  324.   causes the position of the linked line to be adjusted by the movement
  325.   caused by the selected line, before the movement of the linked line is
  326.   itself computed.  Any lines linked to the selected line have their control
  327.   blobs displayed in red, and if the selected line is linked to another
  328.   line, that line's control blobs are displayed in dark green, as opposed to
  329.   light green.
  330.  
  331.   Typically one would use this feature on character baselines, where the
  332.   straight-bottomed and curve-bottomed characters are linked to different grid
  333.   lines, but one of the grid lines is linked to the other, to ensure that they
  334.   move in a consistent manner.  One would normally also link the upper serif
  335.   line of a font to the baseline serif line, so that the height of the font
  336.   is kept close to the ideal value.
  337.  
  338.   Pressing CTRL-select on a scaffold line links it linearly between the
  339.   selected scaffold line and its parent.  For example, for a captital 'E',
  340.   one would first link the top stem H-scaffold line to the bottom stem
  341.   H-scaffold line, and would then select the top stem scaffold line and
  342.   click CTRL-select on the middle stem H-scaffold line to link it linearly
  343.   between the other two.  When the character is rendered, the top and bottom
  344.   stems are first adjusted to fit the grid, and then the middle line is
  345.   adjusted to restore the original proportions of the sections above and
  346.   below this line before that line is itself fitted to the grid.  This
  347.   ensures that if the upper portion of the 'E' is meant to be slightly
  348.   smaller than the lower section, the final bitmap character will always
  349.   have the upper section smaller than or equal to the lower section.
  350.  
  351.   You can drag any scaffold line using the SELECT or ADJUST buttons - any
  352.   other characters containing a reference to the line are also affected.
  353.  
  354.   Clicking SELECT on the window background will only deselect the scaffold
  355.   line if SHIFT is pressed (this is to allow SELECT-drag to drag a rectangle
  356.   over a set of points without deselecting the scaffold line).  Pressing
  357.   Escape will also deselect any selected scaffold line.
  358.  
  359. Skeleton menu:
  360.  
  361.   Delete - deletes the selected line (straight line or Bezier curve) or
  362.   scaffold line, depending on which is selected at the time - note that
  363.   selecting a scaffold line automatically deselects any selected line.
  364.  
  365.   Straighten - straightens the selected Bezier curve, if any (ie. turns it
  366.   back into a straight line segment).
  367.  
  368.   Scaffold - various options dealing with scaffold lines, listed under
  369.   'Scaffold menu' below.
  370.  
  371.   Display - the submenu allows various artifacts in the skeleton window
  372.   to be displayed or not as required:
  373.  
  374.         Pointer - if not ticked, the pointer is removed whenever a drag
  375.         commences, and is restored afterwards.
  376.  
  377.         Coords - if ticked, the coordinates of a point (in design units)
  378.         are displayed as it is dragged.
  379.  
  380.         Width - if ticked, the character's origin and width are displayed. 
  381.         If no metrics file is loaded, all characters have width 0 (the
  382.         origin is displayed as a cross).
  383.  
  384.         Char BBox - if ticked, the character's current bounding box is
  385.         displayed in red.
  386.  
  387.         Orig BBox - if ticked, the character's "original" bounding box (ie.
  388.         that specified by the metrics file) is displayed.  This does not
  389.         change if the character is edited - only if the metrics file is
  390.         reloaded.
  391.  
  392.         Font BBox - if ticked, the font bounding box is displayed, with two
  393.         horizontal lines showing the height of one em (in design units, the
  394.         distance between these two lines is the design size of the font). 
  395.         Note that the font bbox is not updated until the font is saved or
  396.         reloaded.
  397.  
  398.         Bitmap - if ticked, then any bitmap dragged into the skeleton window
  399.         will be displayed at its current scaling and orientation.  Normally
  400.         the bitmap would be made invisible to allow the outline to be
  401.         inspected.
  402.  
  403.         Handles - if ticked, then if there is a bitmap in this window then a
  404.         red box will be drawn round it with 8 'handles' to allow its size
  405.         and orientation to be altered.  Note that if the handles are
  406.         displayed, dragging SELECT inside the area covered by the bitmap
  407.         will cause it to be moved - to draw lines over the bitmap, the
  408.         handles must be made invisible.
  409.  
  410.   Full char - this allows another way of getting hold of the 'full char'
  411.   window, instead of double-clicking ADJUST on the Font Index window.
  412.  
  413.   Zoom - this allows the size of the character display to be changed.  If
  414.   the 'variable' box is ticked, then the displayed chacter size depends on
  415.   the height of the window, otherwise the numbers in the writeable fields
  416.   determine the scale factors.  In multisync or VGA modes (modes 20 and 27),
  417.   a ratio of 2:1 gives an exact corespondence between design units and
  418.   pixels on the screen (useful when lining up scaffold lines).
  419.  
  420. Scaffold menu:
  421.  
  422.   New local - this allows a new local scaffold line to be created, subject
  423.   to the restriction that any one character can have at most 7 vertical and
  424.   7 horizontal lines.  The line will only exist in the current character,
  425.   but if an ADJUST drag operation is subsequently made which causes
  426.   another character to use this character as a base, the line will be
  427.   inherited by the new character.
  428.  
  429.   New global - this is similar to the previous operation, except that the
  430.   new line is propagated along all  children of the character (ie. all those
  431.   which use it as a base, and all their children) immediately inherit the
  432.   line.  This operation is only allowed if a line index can be found which is
  433.   free in the current character and all its children.
  434.  
  435.   Replace - if a scaffold line is selected, this operation can be used to
  436.   override it with a new local line.  Any children of the character which
  437.   contained the old line will have it replaced by the new line.
  438.  
  439.   The above three options share the same submenu, which is used to select
  440.   the type of scaffold line required.  These options will be shaded if the
  441.   appropriate line type cannot be selected, eg. if there are no more
  442.   scaffold lines allowed in that direction, or if you are trying to replace
  443.   a line you can only replace it with one in the same direction (X or Y).
  444.  
  445.         H-scaffold      for horizontal stems (eg. middle of 'A')
  446.         U-tangent       for upward-facing arcs (eg. top of 'C')
  447.         D-tangent       for downward-facing arcs (eg. bottom of 'U')
  448.         V-scaffold      for vertical stems (eg. left of 'b')
  449.         L-tangent       for left-facing arcs (eg. left of 'C')
  450.         R-tangent       for right-facing arcs (eg. right of 'D')
  451.  
  452.   Undelete - this option is used to restore a line from a parent character
  453.   in its child if that line has been deleted or replaced in the child.  To
  454.   use it, you should select the line in the parent that you want to put back
  455.   in the child, then click MENU in the child and choose Scaffold=>Undelete. 
  456.   If the line had been replaced by another line in the child, this will be
  457.   replaced by the parent line, including any inheritances of that line in
  458.   children of the child(!).
  459.  
  460.   Disconnect - if there is a selected scaffold line, this will attach all
  461.   points currently connected to the selected line to line 0 (ie. no line).
  462.   Note that this only affects the scaffolding in the direction of the selected
  463.   line, so if an H/U/D-scaffold line was selected, the V/L/R-scaffold
  464.   connections of the points would be unaffected.
  465.  
  466. Skeleton keys (sic):
  467.  
  468.   When the mouse is clicked in a skeleton window, it grabs the caret (its
  469.   window border lights up), wich allows various keyboard speedups to
  470.   operate:
  471.  
  472.     f9              is equivalent to 'Scaffold=>Disconnect' on the menu
  473.  
  474.     Escape          deselects the current line / scaffold line
  475.  
  476.     cursor keys     while dragging, move the pointer by one pixel.
  477.  
  478.     cursor keys     while not dragging, and a scaffold line is selected, all
  479.                     points connected to that line are moved by 1 design unit
  480.                     in the appropriate direction.
  481.  
  482.     cursor keys     while not dragging, and no scaffold line is selected,
  483.                     and there is a composite character segment, this segment
  484.                     will be moved by 1 design units in the appropriate
  485.                     direction.  If there is more than one composite section,
  486.                     clicking SELECT in the window will select the next
  487.                     section for movement.
  488.  
  489.     SHIFT-cursor    as for cursor keys, but move by 4 design units
  490.  
  491.     CTRL-cursor     as for cursor keys, but move by 16 design units
  492.  
  493.  
  494. Bitmap window
  495. -------------
  496.  
  497. Clicking or dragging SELECT in the bitmap will set the pixel under the mouse
  498. pointer to black.
  499.  
  500. Clicking or dragging ADJUST in the bitmap will clear the pixel under the
  501. mouse pointer to white.
  502.  
  503. Bitmap menu:
  504.  
  505.   Rectangles - if this is ticked, a rectangular grid will be displayed over
  506.   the character.  Selecting this option toggles the state.
  507.  
  508.   Diamonds - if this is ticked, a diamond grid will be displayed over the
  509.   character.  This is useful when assessing whether a pixel will be filled by
  510.   the 'thin stroke' parts of the character outline, since the stroking
  511.   algorithm will fill a pixel if the line goes through the diamond shape
  512.   inscribed in the pixel.
  513.  
  514.   Flatness - the flatness parameter passed to the draw module when making
  515.   the bitmap can be altered using this option.  If 'flatness' is ticked, the
  516.   character outline displayed over the top of the bitmap will be tweaked to
  517.   show how the path was actually flattened by the Draw module, and how the
  518.   scaffolding has affected the outline.
  519.  
  520.   Origin - this can be used to alter the position of the character origin
  521.   within the pixel grid, and should not normally be used (it is for
  522.   experimentation purposes).
  523.  
  524. Note that if the outline font that this bitmap font is derived from is
  525. loaded in the editor, the outlines will be displayed over the bitmaps, and
  526. the effect of altering scaffold lines or outlines will be reflected
  527. immediately in the bitmap windows.  This is a very good way of seeing how
  528. the scaffolding process works.
  529.